package com.xxz.course;

import android.os.Handler;
import android.os.Message;
import android.util.Log;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

public class MapTask implements Runnable {
    private static final String TAG="MapTask";
    private Handler handler;
    public void setHandler(Handler handler){

        this.handler = handler;
        Log.i(TAG, "success");
    }

    public void run(){
        Log.i(TAG, "run: run()......");
        //do....延时
        try {
            Thread.sleep(3);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        List<HashMap<String,String>> retlist = new ArrayList<HashMap<String,String>>();
        try {
            Document doc = Jsoup.connect("https://www.boc.cn/sourcedb/whpj/").get();
            String title = doc.title();
            Log.i(TAG,"run: title"+title);

            Elements tables = doc.getElementsByTag("table");
            Element table = tables.get(1);
            Elements trs = table.getElementsByTag("tr");
            //获取第二个table中的数据
            for(Element tr : trs){
                Elements tds = tr.getElementsByTag("td");
                Log.i(TAG,"run:td.size="+tds.size());
                if(tds.size()>0){
                    //提取数据
                    String td1 = tds.get(0).text();
                    String td2 = tds.get(5).text();
                    Log.i(TAG,"run:"+td1+"==>"+td2);

                    HashMap<String,String> map = new HashMap<String,String>();
                    map.put("cname",td1);
                    map.put("cval",td2);
                    retlist.add(map);
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
        //获取Msg对象，用于返回主线程
        Message msg = handler.obtainMessage(7,retlist);
        handler.sendMessage(msg);
        Log.i(TAG, "run: sendMessage ok");
    }
}
